﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Arraylistr集合
{
    class Program
    {
        static void Main(string[] args)
        {
            //第一种向集合里面添加元素的方法
            ArrayList list = new ArrayList()
            {
                "这里是阿右啊！",
                "这里是小刘啊！",
                "还有老陈和小张",
                "和",
                "宝强和小楠啊!"
            };
            foreach(var a in list)
            {
                Console.WriteLine(a);
            }

            //第二种向集合里面添加元素的方法
            //int Add(object value)	向集合中添加 object 类型的元素，返回元素在集合中的下标
            ArrayList sum = new ArrayList();
            sum.Add("\n我与春风皆过客,");
            sum.Add("你携秋水揽星河。");
            sum.Add("远赴人间惊鸿宴，");
            sum.Add("谈笑风生不动情。");
            for(int i = 0; i<sum.Count; i++)
            {
                Console.WriteLine(sum[i]);
            }

            //void AddRange(ICollection c)    向集合中添加另一个集合 c
            ArrayList wenan = new ArrayList() {
                "\n穷在闹世无人问,",
                "富在深山有远亲。"
            };
            ArrayList wenan2 = new ArrayList()
            {
                "不信你看杯中酒,",
                "杯杯先敬有钱人。"
            };
            wenan.AddRange(wenan2);
            foreach(var b in wenan)
            {
                Console.WriteLine(b);
            }

            //Capacity	属性，用于获取或设置集合中可以包含的元素个数
            ArrayList english = new ArrayList() {
                "Where",
                "Are",
                "You"
            };
            Console.WriteLine();
            Console.WriteLine(english.Capacity);

            //void Clear() 	从集合中移除所有元素

            ArrayList bay = new ArrayList() {
                "告辞",
                "再见",
                "拜拜"
            };
            foreach(var c in bay)
            {
                Console.WriteLine();
                Console.WriteLine(c);
            }
            //删除单个元素，移除特定对象的第一个匹配项。
            //bay.Remove("拜拜");

            //根据索引去删除元素
            //list.RemoveAt(0); //删除索引为0的元素

            //根据索引去移除一定范围的元素
            //list.RemoveRange(0, 3);//删除索引0-3的元素
            bay.Clear();

            //bool Contains(object item)	判断集合中是否含有 item 元素
            //若含有该元素则返回 True, 否则返回 False
            ArrayList jsxh = new ArrayList() {
                "东南西北四条街,",
                "你打听打听谁是爹。"
            };
            Console.WriteLine(jsxh.Contains("\n东南西北四条街"));

            //void CopyTo(Array array)	从目标数组 array 的第 0 个位置开始，
            //将整个集合中的元素复制到类型兼容的数组 array 中
            ArrayList qinghua = new ArrayList()
            {
                "\n你所在的那个城市好玩吗？",
                "不清楚",
                "我觉得吧，有你在的地方，再我心里都是游乐场"
            };
            string[] str = new string[4] { " "," "," "," "};
            qinghua.CopyTo(str);
            foreach(var d in str)
            {
                Console.WriteLine(d);
            }

            //void CopyTo(Array array,int arraylndex)	从目标数组 array 的指定索引 arraylndex 处，
            //将整个集合中的元素赋值到类型兼容的数组 array 中
            ArrayList life = new ArrayList()
            {
                "秋是慢慢入的,",
                "冷是突然的,",
                "越是寒冷的天气,",
                "一点点的温暖也会感到满足。"
            };
            string[] fe = new string[6] {" "," ", " ", " ", " ", " " };
            //string[] fe = new string[4] { " ", " ", " ", " " };
            life.CopyTo(fe,2);
            for(int i = 0; i < fe.Length; i++)
            {
                Console.WriteLine(fe[i]);
            }

            //shenghuo.Reverse()升序排列
            //shenghuo.Insert;反转
            //shenghuo.InsertRange(0, new string[]{ a,b,c,d});
            ArrayList shenghuo = new ArrayList() {
                "我吃东西逐渐越来越清淡，",
                "对待人情世故也越来越宽容，",
                "不乱发脾气也学会了忍让，",
                "慢慢地有了一颗成长的心。",
                "也开始害怕听到任何与病痛有关的事，",
                "最大的心愿变成了全家人身体健康。",
                "相比一两年前迫不及待要去看远方的心，",
                "我更希望花十分之九的时间在温柔灯光下和妈妈吃完的一餐饭。"
            };
             shenghuo.Reverse();
            shenghuo.InsertRange(0, new string[] { "\n我","爱", "中","国\n" });
            for (int i=0; i<shenghuo.Count; i++)
            {
                Console.WriteLine(shenghuo[i]);
            }
        }
    }
}















